﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TankController.Dominio
{
    class AcaoD : IAcaoControle
    {
        protected double ganho;
        protected double valorAnterior;
        protected int periodo;

        public AcaoD(double ganho, int periodo)
        {
            this.ganho = ganho;
            this.periodo = periodo;
        }

        public double Calcular(double valor)
        {
            double derivada = (valor - valorAnterior) / ((double)periodo / 1000);

            valorAnterior = valor;

            return ganho * derivada;
        }

        public void Reiniciar()
        {
            valorAnterior = 0;
        }

        public double Ganho
        {
            get { return ganho; }
            set { ganho = value; }
        }
    }
}
